import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QTableView,QComboBox
from PyQt5.QtGui import QStandardItemModel,QStandardItem
from PyQt5.QtCore import Qt


def set_up_table_view():
    # 创建应用程序对象
    app = QApplication(sys.argv)

    # 创建主窗口对象
    main_window = QMainWindow()

    # 创建 QTableView 对象
    table_view = QTableView()

    # 创建数据模型对象
    model = QStandardItemModel(table_view)

    # 设置表格行数和列数
    model.setRowCount(5)  # 行数为5
    model.setColumnCount(3)  # 列数为3

    # 设置表头
    model.setHorizontalHeaderLabels(["姓名", "年龄", "性别"])

    # 将数据模型设置给表格视图
    table_view.setModel(model)

    # 将表格视图设置为主窗口的中心组件
    main_window.setCentralWidget(table_view)

    # 显示主窗口
    main_window.show()

    # 运行应用程序
    def modify_cell_text():
        # 修改单元格文本
        model.setData(model.index(0, 1), "25")
    def modify_cell_color():
        # 创建一个 QStandardItem 对象
        item = QStandardItem("男")

        # 设置背景色为红色
        item.setBackground(Qt.red)

        # 将 QStandardItem 对象设置给单元格
        model.setItem(1, 2, item)
    def set_editor():
        # 创建一个下拉列表编辑器
        combo_box_editor = QComboBox()
        combo_box_editor.addItems(["男", "女", "未知"])

        # 将下拉列表编辑器设置给指定单元格
        table_view.setIndexWidget(model.index(0, 2), combo_box_editor)
    modify_cell_text()
    modify_cell_color()
    set_editor()
    sys.exit(app.exec_())
set_up_table_view()
